
#ifndef MESH_UTILS_H
#define MESH_UTILS_H

struct iDevice;
struct iMesh;
struct iPatchMesh;
struct iStaticMesh;

iPatchMesh* create_terrain (iDevice* device, const char* filename, bool invertP, bool invertQ, float dp, float dq);
iPatchMesh* create_sphere (iDevice* device, float radius, unsigned numP);
iMesh* create_grass_mesh (iDevice* device,
													float radius,
													float height,
													unsigned num,
													const char* filename,
													const char* densityFilename,
													float p0,
													float p1,
													float q0,
													float q1,
													float dp,
													float dq,
													bool invertP,
													bool invertQ);

iMesh* create_plane_mesh (iDevice* device, float x, float y);
//iMesh* create_particle_mesh (iDevice* device, float size);
iMesh* create_static_plane (iDevice* device, float u, float v);

ceMesh* create_cylinder_mesh (iDevice* device, float radius, float height, float numSegs, float numRads, float tuSplit, float tvSplit);
iStaticMesh* create_cylinder (iDevice *device, float radius, float height, float numSegs, float numRads, float tuSplit, float tvSplit);


#endif // MESH_UTILS_H
